<template>
  <div class="base">
    <div class="msg-tip">
      <div class="text">{{msg}}</div>
      <div class="btn" @click="emit('close',1)">×</div>
    </div>
  </div>
</template>
<script setup lang="ts" name="MyToast">
import { onMounted } from 'vue';
defineProps(['msg'])
const emit = defineEmits(['close'])
onMounted(() => {
  setTimeout(() => {
    emit('close',0)
  }, 3000)
})
</script>
<style lang="css" scoped>
.base {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: transparent;
  /* 透明背景，不遮挡下方内容 */
  display: flex;
  justify-content: center;
  z-index: 9999;
  pointer-events: none;
  /* 不阻止下方点击事件 */
}

.msg-tip {
  background-color: white;
  border-radius: 5px;
  border: 1px solid orangered;
  margin-top: 10px;
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 8px;
  padding-bottom: 8px;
  display: flex;
  align-items: center;
  min-width: 100px;
  text-align: center;
  color: orangered;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  /* 添加阴影增强立体感 */
  /* 定位到顶部中心 */
  position: relative;
  top: 20px;
  /* 与顶部保持间距 */
}

.msg-tip .text {
  flex: 1;
  max-width: 500px;
  white-space: nowrap;
  /* 禁止换行 */
  overflow: hidden;
  /* 溢出隐藏 */
  text-overflow: ellipsis;
}

.msg-tip .btn {
  /* 基础尺寸与圆角 */
  width: 20px;
  height: 20px;
  margin-left: 10px;
  border-radius: 20px;
  /* 核心布局属性 */
  display: flex;
  /* 启用flex布局 */
  align-items: center;
  /* 垂直居中 */
  justify-content: center;
  /* 水平居中 */

  /* 字体与行高配置 */
  font-size: 12px;
  /* 适当减小字体大小 */
  line-height: normal;
  /* 重置行高 */
  color: orangered;
  /* 文字颜色 */

  /* 背景与边框 */
  box-sizing: border-box;
  /* 包含内边距和边框 */
  padding: 0;
  /* 清除默认内边距 */
  border: none;
  /* 清除默认边框 */

  /* 文本居中 */
  text-align: center;
  /* 禁止换行 */
  white-space: nowrap;
  /* 溢出隐藏 */
  overflow: hidden;
  border: 2px solid orangered;
  font-weight: bold;
  cursor: pointer;
  /* 恢复按钮的点击事件 */
  pointer-events: all;
}
</style>
